# 和js的区别是，定义空集合不能用{},必须set()

# 不管怎样，即使你刚开始就定义好了也不会出现重复的元素，语法和列表的语法相似
_set = {'aaa', 'aaa', 'bbb', 111, True}

# 添加元素 和列表不同，列表的添加有append，extend，insert
_set.add('aaa')
_set.add('ccc')
print('_set:', _set)

# 移除元素
_set.remove(111)
print('_set:', _set)

# 随机取出一个元素，在列表中可以指定取出，因为pop的传参只支持下标索引
print('_set:', _set)
print('_set.pop()', _set.pop())

# 清空集合
_set.clear()
print('_set:', _set)

# 获取两个集合的差集,这个方法不适用于数组(列表),difference
set1 = {1, 2, 3}
set2 = {1, 4, 5}
set3 = set1.difference(set2)
print("set3:", set3)

# 在str1里面消除和str2相同的元素,difference
set1 = {1, 2, 3}
set2 = {1, 4, 5}
set1.difference_update(set2)
print(set1)  # {2,3}
print(set2)  # {1,4,5}

# 合并两个集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1.union(set2)
print(set3)

# 集合的遍历，由于不支持下标索引，不支持while，但是可以用for
set_list = {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(len(set_list))
for x in set_list:
    print(x)

# 将数组去重
_list_ = [1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 9, 7, 7, 7, 7]
new_list = set()
for x in _list_:
    new_list.add(x)
print(new_list)
